iT邦幫忙

第 11 屆 iThome 鐵人賽

DAY 7
1

本日閱讀進度:第三章 介紹函式(79~94頁)

重點摘要:

  1. 使用函式簡化程式碼
    先來看看下面這段程式碼:
var dogName = "rover";
var dogWeight = 23;
if (dogWeight > 20) {
  console.log(DogName + "says WOOF WOOF");
} else {
  console.log(DogName + "says woof woof");
}

var dogName = "spot";
var dogWeight = 13;
if (dogWeight > 20) {
  console.log(DogName + "says WOOF WOOF");
} else {
  console.log(DogName + "says woof woof");
}

是不是覺得重複又冗長呢?

我們可以把它改寫成函式:

function bark(name, weight) {
  if (weight > 20) {
    console.log(name + " " + "says WOOF WOOF");
  } else {
    console.log(name + " " + "says woof woof");
  }
}

再用引數呼叫它:

bark("rover", 23); //"rover says WOOF WOOF"
bark("spot", 13); //"spot says woof woof"
  1. 參數和引數
    程式新手常常將參數(parameter)和引數(argument)搞混,
    或直接都稱為參數。
    事實上,在函式主體上的稱為參數,要呼叫函式時傳入的值稱為引數。
function bark(name, weight)
//name 和 weight 是參數;

bark("rover", 23)
//"rover" 和 23 是引數。

引數可以是字串、布林值或數字,也可以是變數,甚至可以把運算式當成引數傳入。

saveMyProfile(student, year, 381/100, status == “newuser”);
  1. JavaScript的引數是按值傳遞
    最近上課時老師才提到pass by reference vs pass by value,沒想到在這裡又碰到它啦!
    JavaScript是透過按值傳遞(pass by value)的方式將引數傳給函式。
    也就是說,傳遞的是副本,原始的變數不會改變。
    例如:
var age = 7;  //宣告一個變數,並將初始值設定為7.

function addOne(x){
  x = x + 1;
}              //宣告一個addOne函式,此函式具有一個名為x的參數,它會將x的值加1。

addOne(age); //呼叫addOne函式,將變數age做為引數傳入。age中的值會被複製給參數x。

console.log(age);  //再回去看age,數值依然是7。

近期五倍紅寶石的官網會發表一篇pass by reference vs pass by value的文章,敬請密切注意!

本文同步發表於cichen


上一篇
Day06. 毫無反應,就只是個NPC戰艦?快呼叫random!
下一篇
Day08. 要五毛給一塊,你說JavaScript奇怪不奇怪
系列文
Head First!從頭開始學JS 《深入淺出 JavaScript 程式設計》讀書筆記30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言